package com.ys.otms.dao;

import com.ys.otms.dto.*;

import java.sql.Timestamp;
import java.util.List;

public interface IShipDao {

    List<ShipInfoDto> queryShip(ParamDto param);

    List<ShipInfoDto> queryAvShip(ParamDto param);

    List<ShipInfoDto> queryAllZYShip(ParamDto param);

    List<ShipInfoDto> selectAllShipsQuery(ParamDto param);

    int selectAllShipsByCount(ParamDto param);

    void deleteShipsByShipid(ParamDto param);

    List<RegionDto> queryRegion(RegionDto regionDto);

    void insertShipOwnerByPhoneNum(List<ShipInfoDto> shipOwnerDtoList);

    List<ShipInfoDto> selectShipInfoByShipName(List<ShipInfoDto> shipInfoDtoList);

    List<ShipOwnerDto> selectShipOwnerByPhoneNum(List<ShipInfoDto> shipInfoDtoList);

    void insertShipInfoQuery(List<ShipInfoDto> shipInfoDtoListo);

    void insertShipAndByShipId(ParamDto param);

    void insertShipOwner(ShipOwnerDto shipOwnerDto);

    void insertShipInfo(ShipInfoDto shipInfoDto);

    ShipInfoDto selectShipInfosByShipId(ParamDto paramDto);

    List<ShipInfoDto> selectBeOverdueShipInfo(ParamDto param);

    int selectBeOverdueShipInfoCount(ParamDto param);

    UserShipDto selectUserShip(ParamDto paramDto);

    List<ShipXyInfoDto> selectAllShipMMSI();

    int insertShipXyInfoBatch(List<ShipXyInfoDto> shipXyInfoDtoList);

    ShipInfoDto selectShipInfoByShipNameAndByMmsi(ParamDto paramDto);

    ShipInfoDto selectShipInfoByCompanyId(ParamDto paramDto);

    ShipOwnerDto selectShipOwner(ShipOwnerDto shipOwnerDto);

    void insertShipTrack(List<ShipXyInfoDto> subList);

    void deleteShipTrackByUpdateTime(ParamDto paramDto);

    List<ShipTrackDto> selectShipTrack(ParamDto paramDto);

    void updateCityName(ShipInfoDto shipInfoDto);

    int insertBerthInfo(List<BerthInfoDto> berthInfoDtoList);

    List<ShipXyInfoDto> selectAllNavistatCode();
    int updateCityName4ShipInfo(List<ShipXyInfoDto> shipXyInfoDtoList);
}
